home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / UTILITY / ZCRYPT12.ARJ / ZCRYPT.DOC < prev    next >
Text File  |  1992-01-28  |  17KB  |  359 lines

  1.  
  2.                 ZCrypt v1.2 Encryption Utility
  3.                         ZCrypt.Doc file
  4.                         January 27, 1992
  5.  
  6. Micanopy MicroSystems, Inc.                     Ph:  904/376-1614
  7. 4139-49 SW Archer Road                          FAX: 904/374-6569
  8. Gainesville, FL. 32608                          CompuServe: 72740,1400
  9.  
  10. Interested in winning $3000?  Try your hand at our code breakers
  11. contest.  See the file: Contest.Doc.
  12.  
  13. To print this file, enter:
  14.     copy readme.doc prn:
  15.  
  16.  
  17. TABLE OF CONTENTS
  18. -----------------
  19. INSTALLATION                          Authors: Chuck Segal and
  20. GENERAL INFORMATION                            David MacQuigg
  21. USING ZCRYPT
  22. TIPS & TECHNIQUES
  23. TECHNICAL INFORMATION
  24. PROGRAM DISTRIBUTION
  25. FILES ON DISK
  26.  
  27.  
  28. INSTALLATION
  29. ------------
  30.  
  31. To install ZCrypt, simply copy the ZCrypt.exe file into a directory
  32. which is on your DOS PATH.  To find out which directories are on your
  33. PATH, enter "PATH" at the DOS prompt.  For more information on the DOS
  34. Path command, see your DOS manual.
  35.  
  36.  
  37. GENERAL INFORMATION
  38. -------------------
  39.  
  40. ZCrypt is a general purpose data encryption utility program.  It accepts
  41. a key (password or phrase) and uses this key to encrypt (scramble)
  42. the contents of a file or group of files on your disk.
  43.  
  44. We are offering the ZCrypt algorithms as a proposed standard for data
  45. encryption(the PC Data Encryption Standard, or PCDES).  ZCrypt is a
  46. modular system in which several algorithms (methods) of encryption can
  47. be combined.  The user can select any one or all algorithms, depending
  48. on the need for speed or security.  Using multiple algorithms provides
  49. the utmost security.  If one of the algorithms is broken, the other
  50. algorithms will still protect your data.
  51.  
  52. Three algorithms are provided in this version of ZCrypt.  The "LFSR"
  53. algorithm (/X) is optimized for speed.  The "LFSR with Adder" (/Y) and
  54. the "Bit-Basher" (/Z) algorithms offer higher security.  All are much
  55. faster than the old Data Encryption Standard (DES), which was never
  56. intended to run on a Personal Computer (see Table below under "Technical
  57. Information").
  58.  
  59. If you are a PC Software Developer or a Cryptographer, you may be
  60. interested in incorporating our ZCrypt algorithms into your product, or
  61. having your algorithm included in the ZCrypt standard.  For more
  62. information, call or write to us at the address above for a copy of our
  63. Developers Toolkit.
  64.  
  65.  
  66. USING ZCRYPT
  67. ------------
  68.  
  69. To see what the ZCrypt command line parameters are, execute the program
  70. with no parameters (i.e. enter "ZCrypt" by itself).  You will see a
  71. screen display similar to the following:
  72.  
  73. ╔═════════════════════════════════════════════════════════════════════════════╗
  74. ║  ZCrypt Version 1.2    1/22/92  (c) 1991 Micanopy MicroSystems, Inc.        ║
  75. ╠═════════════════════════════════════════════════════════════════════════════╣
  76. ║  To encrypt: ZCrypt FileName.Ext    [EncryptionMethod] [/cfm]               ║
  77. ║  To decrypt: ZCrypt FileName.Ext /d [EncryptionMethod] [/cfm]               ║
  78. ╠═════════════════════════════════════════════════════════════════════════════╣
  79. ║  Where EncryptionMethod can be:                                             ║
  80. ║    /X = High Speed (default)           /XY ═╗                               ║
  81. ║    /Y = Optimum                        /XZ  ║  Combinations...              ║
  82. ║    /Z = High Security                  /YZ ═╝                               ║
  83. ║                                        /XYZ = Most secure                   ║
  84. ║  Options:                                                                   ║
  85. ║    /CFM = Confirm each filename (when wildcard filenames are specified)     ║
  86. ╠═════════════════════════════════════════════════════════════════════════════╣
  87. ║                     F1 for Help     Escape to Quit                          ║
  88. ║  Edit functions:                                                            ║
  89. ║    Enter - terminates a line           Backspace - deletes character        ║
  90. ║                                   Ctrl-Backspace - deletes line             ║
  91. ╚═════════════════════════════════════════════════════════════════════════════╝
  92.  
  93. To use ZCrypt, simply enter the ZCrypt command followed by the
  94. appropriate parameters. (note: command line parameters are not case
  95. sensitive).
  96.  
  97. After receiving a valid command, the program will prompt for an
  98. Encryption Key.  For encryption, a second prompt asks you to repeat the
  99. password.  This avoids a total loss of data due to a typographical error
  100. in the Key.  For decryption, the program checks to see if the entered
  101. Key matches the Key used to encrypt the file. 
  102.  
  103. As an example, if you want to encrypt all of your WordPerfect files
  104. (assuming they all have .wp5 file extensions), and you wish to confirm
  105. each filename before encrypting, the command is:
  106.  
  107.      ZCrypt *.wp5 /xyz /cfm
  108.  
  109. This will encrypt your text files using all three algorithms.  To
  110. decrypt (i.e. recover your original data) enter:
  111.  
  112.      ZCrypt *.wp5 /xyz /d
  113.  
  114. Note: Pressing any key during a wildcard file operation will interrupt
  115. (after completion of the current file) and ask for confirmation on all
  116. subsequent files.
  117.  
  118. The program will not accept a password which has a length less than four
  119. characters, and will ignore any after 246.
  120.  
  121. Help is available at any prompt by pressing F1.
  122.  
  123. Maintenance Mode
  124. ----------------
  125. The /M option (which is not listed in the Information Screen) is for
  126. "Maintenance".  It presumes a fair amount of computer knowledge on the
  127. part of the user.  It allows you to "force" the use of a Key on a file. 
  128. The ONLY use for this option is to restore a damaged file.  Here is an
  129. example: You have received an encrypted file.  When you try to decrypt
  130. it (using what you are 100% certain is the correct password and
  131. encryption method), you get the "ERROR -- Incorrect Password or
  132. EncryptionMethod" message.  To fix this, first make a backup copy of the
  133. file.  Now run the DOS CHKDSK program, or possibly the Norton Disk
  134. Doctor program, to fix any possible File Allocation Table, or other
  135. errors.  Next, run ZCrypt on the problem file using the /M and /D
  136. options.  When the "incorrect password" error occurs, you will be
  137. prompted to "Skip file, Force Key, or Exit? (S/F/Esc):".  Choosing the
  138. "Force Key" option will cause the file to be decrypted using the current
  139. Key.  If the Key you provided was indeed the Key used to encrypt the
  140. file (and the ordering of the data in the file has not been changed)
  141. then the file should decrypt correctly.
  142.  
  143.  
  144. TIPS & TECHNIQUES
  145. -----------------
  146.  
  147. We have provided two batch files for your convenience.  By editing the
  148. .BAT files, you can conveniently set up defaults to be used by the
  149. program.  For example, if you wish to make the Bit-Basher the default,
  150. you would alter the files to look like this:
  151.  
  152.       ENCRYPT.BAT: ZCrypt %1 /z
  153.       DECRYPT.BAT: ZCrypt %1 /z /d
  154.  
  155. Now you can type a command like: "encrypt *.dat" and the program will
  156. encrypt all .dat files using the Bit-Basher algorithm.
  157.  
  158. Long, easily remembered phrases, with varied use of case and spacing
  159. make good keys.  If the key "Mary had a little lamb" is used to encrypt
  160. a file, the key "Mary had a little Lamb", (with the L in Lamb
  161. capitalized), will NOT decrypt the file!  In other words all upper and
  162. lower case letters must be the same when decrypting as they were when
  163. encrypting.  Note that spaces are significant when used in a key.
  164.  
  165. A key consisting of words which are not in the dictionary is more secure
  166. than a key with words which are in the dictionary.  A snoop can write a
  167. program which will try to decrypt your file by using every word in an
  168. online dictionary.  No matter how secure the encryption method is, it is
  169. useless if someone else can guess what your key is!
  170.  
  171.  
  172. SECURITY
  173. --------
  174.  
  175. Most of the "secret" algorithms available in commercial software can be
  176. easily broken by a cryptanalyst.  How can the non-expert judge the
  177. security of a crypto program?  We believe that the attitude of the
  178. software vendor provides a clue.  A phone call to one revealed that the
  179. developer could recover an encrypted file without any knowledge of the
  180. user's key.  If he can do it, how many others can do it?  Another vendor
  181. stated that their encryption method was "unbreakable" in spite of the
  182. fact that a method to break this widely sold product had been PUBLISHED
  183. two years prior!  Size and reputation of the vendor is a poor guide. 
  184. The two mentioned above are among the largest.
  185.  
  186. Most vendors hide their weak algorithms behind a cloak of "secrecy".  If
  187. they really cared about security, they would PUBLISH their algorithms,
  188. LISTEN to feedback from experts and INFORM their users of any weaknesses
  189. which are uncovered.  We intend to do that and more.  We will encourage
  190. scrutiny by experts and upgrade our algorithms if any weaknesses are
  191. discovered.
  192.  
  193. As an aid to judging the security of our program, we are including some
  194. of the design details below.  Full details are available in the article
  195. "A New Standard for Data Encryption in Personal Computers" by David
  196. MacQuigg and Chuck Segal.  This article has been submitted to the
  197. Journal "Cryptologia" and if accepted, will be published.  The article
  198. is available upon request.
  199.  
  200. Block diagrams of each algorithm have been published in the file
  201. ZCRYPG.ZIP, available from the IBMSYS\UTIL forum on CompuServe.  The
  202. diagrams are in .gif (graphics interchange format) files.
  203.  
  204. Warning!
  205. --------
  206. Many programs "update" a file by creating a new file and "deleting" the
  207. old file.  Unfortunately, "delete" means "mark the data clusters as
  208. available", i.e. a copy of your data remains on disk in an unencrypted
  209. form.  To correct this, we suggest using the Norton WipeDisk program,
  210. which has an option for "wiping" unused data clusters.
  211.  
  212. ZCrypt encrypts each file "in-place" (i.e. it overwrites the current
  213. file with an encrypted equivalent).  This is faster than writing a new
  214. file (due to reduced head motion) and does not leave unencrypted data on
  215. disk.
  216. TECHNICAL INFORMATION
  217. ---------------------
  218.  
  219. ZCrypt runs on any IBM-PC or close compatible, including the XT, AT, and
  220. PS/2.  It requires DOS 2.1 or greater, 64K bytes of memory and a floppy
  221. or preferably a hard disk.
  222.  
  223. The program consists of approximately 1500 lines of assembler, and 1400
  224. lines of C language code.
  225.  
  226. ZCrypt is a Modified Stream Cipher, based on multiple, independent
  227. Keystream Generators.  Each time a generator is cycled, it outputs a
  228. corresponding Running Key byte.  As you can see from the block diagram
  229. (at the end of this file), the internal state of each generator can be
  230. altered by the output of the Controller.  The output of each generator
  231. is combined with the plaintext, resulting in the ciphertext.
  232.  
  233. There are three algorithms available in ZCrypt.  The following table
  234. shows the times (in seconds) to encrypt a 100k byte file.  These times
  235. include the algorithm processing times and disk-access time.
  236.  
  237.   Algorithm                               8 MHz PC  20 MHz 386
  238.   -------------------------------         --------  ----------
  239.         Copy file (No encryption)           1.88       1.22
  240.   /X  = Fast LFSR    Rev.1.4b (default)     4.22       1.59
  241.   /Y  = LFSR w/Adder Rev.2.5a               8.84       2.37
  242.   /Z  = Bit-Basher   Rev.1.1               19.45       3.78
  243.         DES (for comparison purposes)                 15
  244.  
  245. The Fast LFSR is optimized for speed.  It uses a 16-bit Linear Feedback
  246. Shift Register (LFSR) to generate a Running Key (see FASTLFSR.GIF for a
  247. diagram).  Computation time is only about 20% of the disk access time. 
  248. This about as fast as any algorithm can be and still be considered an
  249. encryption.  It is comparable in security to most "secret" algorithms
  250. used in commercial software.  Your files will be safe from the average
  251. snoop with no knowledge of computers or cryptography, but you should not
  252. use this algorithm alone if you suspect a "cracker" might be after your
  253. files.
  254.  
  255. The LFSR with Adder (LFSRADD.GIF) is our suggested "optimum" compromise
  256. between speed and security.  It uses an "internal key" of 80 bits,
  257. contained in five registers -- as many as we could stuff into an 8088
  258. microprocessor without forcing extra memory accesses.  We think this
  259. algorithm is secure enough to offer a reward to anyone who can break it
  260. (see CONTEST.DOC), however, we don't recommend it for nuclear missile
  261. targeting data.
  262.  
  263. The Bit-Basher (BITBASH.GIF) is our top-of-the-line security algorithm. 
  264. It uses a 128-bit internal key and a "multi-round substitution-
  265. permutation network" like in DES.  We did not hesitate to add anything
  266. we thought would improve security.  Unlike DES however, we didn't waste
  267. any instructions on useless bit manipulations.  This algorithm runs
  268. about five times faster than DES, and we think it is more secure.
  269.  
  270. PROGRAM DISTRIBUTION
  271. --------------------
  272.  
  273. It is our belief that the Shareware marketing concept is a sensible
  274. solution to the needs of users and developers alike.  It allows the user
  275. (you) to "test drive" the software thoroughly before making a purchase
  276. and if you like the product, to buy it at a price much lower than
  277. retail.
  278.  
  279. If you find ZCrypt useful, please register your copy with us.  Your $15
  280. entitles you to one free upgrade (shipping not included), and
  281. notification of further upgrades and new products.  Please use the
  282. registration form in the file REGISTER.DOC, or call us at the number
  283. above to use your VISA or Mastercard.
  284.  
  285. Site licenses and commercial distribution licenses are available (see
  286. Register.Doc file).
  287.  
  288. Any user feedback is HEARTILY WELCOMED!  Bugs will be fixed ASAP, and
  289. enhancements will be evaluated for inclusion into future releases.
  290.  
  291. With the registration of ZCrypt, users are entitled to 30 minutes of
  292. phone support over the first 90 days following registration.  You pay
  293. for the call, we provide the support.  No collect calls, PLEASE!
  294.  
  295. A limited license to free copy and distribute the Shareware version of
  296. ZCrypt is hereby granted, provided that:
  297.  
  298.      1)   The ZCrypt files (ZCrypt.exe, ZCrypt.doc, Register.doc,
  299.           Readme.doc and Contest.doc) are distributed together, and in
  300.           their original, unmodified state.
  301.      2)   Only a nominal fee for copying and distribution
  302.           (less than $8) is charged.
  303.  
  304. PCDES is a Trademark (TM) of the PC Data Encryption Standards Committee.
  305. ZCrypt is a Trademark (TM) of Micanopy MicroSystems, Inc.
  306. ZCrypt code and documentation are Copyright (c) 1991 Micanopy
  307. MicroSystems, Inc., all rights reserved.
  308.  
  309. ZCrypt is provided AS IS without any warranty, expressed or implied,
  310. including but not limited to fitness for a particular purpose.
  311.  
  312.  
  313. FILES ON DISK
  314. -------------
  315.  
  316.     ZCRYPT.EXE    -  The ZCrypt executable file
  317.     README.DOC    -  "Quick start" information.
  318.     ZCRYPT.DOC    -  This file
  319.     CONTEST.DOC   -  Contest description and regulations
  320.     REGISTER.DOC  -  Registration form and information
  321.     OMBUDSMN.ASP  -  ASP Ombudsman policy
  322.     ENCRYPT.BAT   -  Batch file for encrypting files
  323.     DECRYPT.BAT   -  Batch file for decrypting files
  324.  
  325.     ZCRYPT.GIF    -  Block diagram of ZCrypt architecture
  326.     FASTLFSR.GIF  -  Block diagram of Fast LFSR module
  327.     LFSRADD.GIF   -  Block diagram of LFSR w/Adder module
  328.     BITBASH.GIF   -  Block diagram of Bit-Basher module
  329.  
  330. NOTE: .GIF files are "Graphics Interchange Format" files.  You must use
  331. an appropriate program to view or print these graphics images.  One
  332. popular program is "CompuShow", available from the CompuServe PICS forum
  333. (filename: cshowa.exe and cshowa.des).  A hardcopy of the above .GIF
  334. files is included with the disk sent to registered users.
  335.  
  336. ---------------------------  *****  ------------------------------
  337. ZCrypt (TM) Encryption System Architecture - A indicates up; V indicates down
  338.                             DKey─┐   ┌─BKey
  339.                                  V   V
  340.           TrKey            ┌─────┴───┴──────┐
  341.          ┌─────────────────┤ Controller (1) ├──────────>───┐ ┌──<─────┐
  342.          │                 └────┬──┬──┬─────┘             ┌┴─┴┐       │
  343.          │        Feedback      A  A  A                   │ + │       │
  344.          │       ┌──────────────┘  │  └─────────────┐     └─┬─┘       │
  345.          │       │                 │                │       V Modify  │
  346.          │       │                 │                │       │         │
  347.          └────┬──┼──────────────┬──┼─────────────┐  │       │         │
  348.               │  │              │  │             │  │       │         │
  349.               │  │  ┌───────────┼──┼──┬──────────┼──┼──┬────┘         │
  350.               V  A  V           V  A  V          V  A  V              │
  351.  KeyStream  ┌─┴──┴──┴─┐       ┌─┴──┴──┴─┐      ┌─┴──┴──┴─┐            │
  352.  Generators │    A    │       │    B    │      │    C    │            │
  353.             └────┬────┘       └────┬────┘      └────┬────┘            │
  354.  Running Keys    V                 V                V                 │
  355.                ┌─┴─┐             ┌─┴─┐            ┌─┴─┐               │
  356.      >──────>──┤ R ├──────────>──┤ R ├─────────>──┤ R ├──>────────────┴───>
  357.      PlainText └───┘             └───┘            └───┘          CipherText
  358.  
  359. Note: all data paths 8 bits wide.